﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//OJ题 计算一年的第几天

// 方法一
//class Date {
//public:
//    int Getday(int year, int month) {
//        static int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//        if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))) {
//            return 29;
//        }
//        return arr[month];
//    }
//    Date(int year = 1, int month = 1, int day = 1) {
//        _year = year;
//        _month = month;
//        _day = day;
//    }
//    int operator-(Date d) {
//        int ret = 0;
//        while (_month > d._month) {
//            ret += Getday(_year, d._month);
//            ++d._month;
//        }
//        ret += _day;
//        return ret;
//    }
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//int main() {
//    int year, month, day;
//    scanf("%d%d%d", &year, &month, &day);
//    Date d1(year);
//    Date d2(year, month, day);
//    cout << d2 - d1 << endl;
//    return 0;
//}

//方法二
//int main()
//{
//	int year, month, day;
//	while (cin >> year >> month >> day)
//	{
//		int monthday[13] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };
//		int total = monthday[month - 1] + day;
//		if (month > 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
//			total++;
//		cout << total << endl;
//	}
//	return 0;
//}





//OJ题 日期差值

//方法一
//class Date
//{
//public:
//	int Getyearday(int year)
//	{
//		if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
//			return 366;
//		return 365;
//	}
//	int Getmonthday(int year, int month)
//	{
//		static int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//		if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)))
//		{
//			return 29;
//		}
//		return arr[month];
//	}
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	bool operator>(Date& d)
//	{
//		if (_year > d._year)
//			return true;
//		else if (_year == d._year && _month > d._month)
//			return true;
//		else if (_year == d._year && _month == d._month && _day > d._day)
//			return true;
//		return false;
//	}
//	int operator-(Date d)
//	{
//		Date min = *this;
//		Date max = d;
//		if (*this > d)
//		{
//			min = d;
//			max = *this;
//		}
//		int ret = 0;
//		int mon = 1;
//		int yyear = min._year;
//		while (max._year > yyear)
//		{
//			ret += Getyearday(min._year);
//			++yyear;
//		}
//		while (max._month > mon)
//		{
//			ret += Getmonthday(max._year, mon);
//			++mon;
//		}
//		ret += max._day;
//		mon = 1;
//		while (min._month > mon)
//		{
//			ret -= Getmonthday(min._year, mon);
//			++mon;
//		}
//		ret -= min._day;
//		return ret;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	int year1, month1, day1;
//	scanf("%4d%2d%2d", &year1, &month1, &day1);
//	int year2, month2, day2;
//	scanf("%4d%2d%2d", &year2, &month2, &day2);
//    Date d1(year1, month1, day1);
//	Date d2(year2, month2, day2);
//	cout << d1 - d2 << endl;
//	return 0;
//}

//方法二
//int mon[12] = { 0,31,59,90,120,151,181,212,243,273,304,334 };
//int CountDay(int y, int m, int d)
//{
//    // 计算0-y年的天数
//    int yearDay = y * 365 + y / 4 - y / 100 + y / 400;
//    // 计算到0-m月的天数
//    int monthDay = mon[m - 1];
//    if (m > 2 && ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0))
//        monthDay += 1;
//    return yearDay + monthDay + d;
//}
//int main()
//{
//    int year1, month1, day1;
//    scanf("%4d%2d%2d", &year1, &month1, &day1);
//    int n1 = CountDay(year1, month1, day1);
//    int year2, month2, day2;
//    scanf("%4d%2d%2d", &year2, &month2, &day2);
//    int n2 = CountDay(year2, month2, day2);
//    cout << abs(n1 - n2) + 1 << endl;
//    return 0;
//}



//OJ题 求1+2+...+n
 
//class Sum
//{
//public:
//	Sum()
//	{
//		_ret += _i;
//		++_i;
//	}
//	static int GetRet()
//	{
//		return _ret;
//	}
//private:
//	static int _i;
//	static int _ret;
//};
//int Sum::_i = 1;
//int Sum::_ret = 0;
//class Solution {
//public:
//	int Sum_Solution(int n) {
//		Sum* arr = new Sum[n]
//		// 变⻓数组，但是vs不支持
//		//Sum arr[n];
//		return Sum::GetRet();
//	}
//};